#pragma once

#include "IMxPluginBase.h"

class IPluginXmlAttributeIID
{
public:
	static char * const GUID() { return "C79FE080-9A2E-43CF-878A-88A87543735E"; }		
	static char * const Name() { return "IPluginXmlAttribute"; }
};

class IPluginXmlAttribute :  public IMxPluginBase
{
public:
	static const int					IPluginXmlAttribute::MaxNameLength = 500;			    //<value name="x"></value> - strlen("name") <= 500
	static const int					IPluginXmlAttribute::MaxValueLength = 500;				//<value name="x"></value> - strlen("x") <= 500
public:
	virtual const char *				MXSTDMETHOD GetName() = 0;
	virtual bool						MXSTDMETHOD SetName(const char *name) = 0;
	virtual bool						MXSTDMETHOD GetIntValue(int *value) = 0;
	virtual bool						MXSTDMETHOD SetIntValue(int value) = 0;
	virtual const char *				MXSTDMETHOD GetStringValue() = 0;
	virtual bool						MXSTDMETHOD SetStringValue(const char *value) = 0;
	virtual bool						MXSTDMETHOD GetDoubleValue(double *value) = 0;
	virtual bool						MXSTDMETHOD SetDoubleValue(double value) = 0;

	virtual IPluginXmlAttribute *	MXSTDMETHOD GetNextAttribute() = 0;
	virtual IPluginXmlAttribute *	MXSTDMETHOD GetPreviousAttribute() = 0;

	virtual void						MXSTDMETHOD OwnedByParent(bool set) = 0;
	virtual bool						MXSTDMETHOD IsOwnedByParent() = 0;
				

};